Portable terminals including mobile telephones and the like are under strong market requirement for ability to handle a variety of functions needed by customers having an increasing variety of needs. Portable terminals, however, only have limited hardware resources in general. Therefore, in order to handle a variety of functions, use is made of a computer system having an application framework configured with e.g. JAVA (Registered trademark of Sun Microsystems Inc.), or a programming language capable of installing (hereinafter called “addition”) and uninstalling (hereinafter called “deletion”) the application used while the application is executed. Here, the term application framework refers to a unit capable of packaging the functions to be provided as an application per unit of function, adding and deleting these software modules easily and dynamically to and from the application in response to necessity for these functions, and running and stopping the application. The application framework serves as a unit of function of the application, and is now commonly used in portable telephones. Use of such an application framework enables easy handling of a variety of applications even under a condition of limited hardware resources.
FIG. 13 is a diagram which shows a configuration of an expandable application based on the application framework, disclosed in the Japanese Patent Laid-Open Publication No. 2000-29713. Reference numeral 81 indicates an application, 82 indicates an application framework, and 83 indicates software modules.
In general, there are a plurality of software modules 83. In order to achieve a function required appropriately, the application framework 82 adds a necessary, specific software module(s) 83, thereby creating and running an application 81. When there is a demand for another function, the application framework can delete a software module(s) which handle(s) an unnecessary function from the application 81, while keeping a condition in which these deleted software modules can be added again whenever needed. Thus, necessary software modules 83 can be dynamically added as described above. In this way, the application 81 comprises the application framework 82 and a variety of software modules 83, thereby becoming possible to easily handle a variety of needs (functions and alternation, expansion, updating and so on thereof) with a limited computer system resources. It should be noted that FIG. 13 does not show software modules which are deleted, in the sense as has been defined above, from the application 81.
By using a technique that relates to such an application framework, it becomes possible, for example, in an application environment of a handheld device, to provide dynamically and easily an application needed by a user.
However, in the conventional application framework when too many software modules have been added or software modules need too much capacity, there is a disadvantage that the computer system becomes disabled because it is not possible to make available a necessary amount of computer system resources for running the application. Moreover, when a software module includes a failure, there is a possibility that the entire system can become disabled, thereby becoming unable to continue service provided by the application. Such problems particularly easily occur when the application is expanded or updated to a new version by downloading software modules from outside and using them.
Further, the above-mentioned problems typically occur when, under an environment in which computer systems having different computer system resources are mixed (for example, imagine a situation in which portable telephones made by different manufacturers are being mixedly used in the same environment), or the same software modules are downloaded to different computer systems from a network for use in different application frameworks.
If such a failure occurs, it is necessary to separately identify and delete the software module that has failed, or if there is a mismatch with the computer system resources, it is necessary to find another software module that will not cause the mismatch. In any instance, the system must be manually re-started, which has been a major limitation to the use of the system. For this reason, there has been a demand for a reliable computer system capable of avoiding a fatal failure which can be restored only manually, and capable of automatic restoration.